REST API Integration এবং HTTP Methods

Computer Programming - এপেক্স (Apex) Apex REST এবং SOAP Web Services (Apex REST and SOAP Web Services) |
260
260

REST API Integration হলো Salesforce-এ RESTful APIs ব্যবহার করে অন্য সিস্টেমের সাথে ডেটা আদান-প্রদানের একটি পদ্ধতি। REST API Integration এর মাধ্যমে HTTP মেথড যেমন GET, POST, PUT, এবং DELETE ব্যবহার করে ডেটা প্রক্রিয়াকরণ করা হয়। REST API Integration সাধারণত JSON ফরম্যাটে ডেটা পাঠায় এবং গ্রহণ করে, যা ব্যবহারকারী এবং সিস্টেমের মধ্যে দ্রুত ও সহজ ডেটা এক্সচেঞ্জ নিশ্চিত করে।


REST API Integration এ HTTP Methods এর ব্যবহার

HTTP মেথডের মাধ্যমে REST API-তে বিভিন্ন CRUD (Create, Read, Update, Delete) অপারেশন করা হয়:

  1. GET: ডেটা রিট্রিভ করতে ব্যবহৃত হয়।
  2. POST: নতুন ডেটা তৈরি করতে ব্যবহৃত হয়।
  3. PUT: বিদ্যমান ডেটা আপডেট করতে ব্যবহৃত হয়।
  4. DELETE: ডেটা মুছে ফেলতে ব্যবহৃত হয়।

HTTP GET Method: ডেটা রিট্রিভ করা

GET মেথড ব্যবহার করে নির্দিষ্ট ডেটা রিট্রিভ করা হয়। এটি সাধারণত URL এর মাধ্যমে ডেটা পাঠায় এবং রেসপন্সে JSON ফরম্যাটে ডেটা রিটার্ন করে।

উদাহরণ: GET Method ব্যবহার করে ডেটা রিট্রিভ

public class RESTGetExample {
    public static void getAccount(String accountId) {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint('https://externalapi.com/api/accounts/' + accountId);
        request.setMethod('GET');
        request.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());

        HttpResponse response = http.send(request);
        
        if (response.getStatusCode() == 200) {
            System.debug(response.getBody());
        } else {
            System.debug('Error: ' + response.getStatusCode() + ' - ' + response.getStatus());
        }
    }
}
  • setMethod('GET'): HTTP GET মেথড নির্ধারণ করা হয়েছে।
  • setEndpoint: API URL দিয়ে নির্দিষ্ট Account রেকর্ড রিট্রিভ করা হয়েছে।
  • Authorization Header: API কল করার জন্য Authorization Header সেট করা হয়েছে।

HTTP POST Method: নতুন ডেটা তৈরি করা

POST মেথড ব্যবহার করে নতুন ডেটা তৈরি করা হয়। এটি সাধারণত JSON বা XML ফরম্যাটে ডেটা রিকোয়েস্ট বডিতে প্রেরণ করে।

উদাহরণ: POST Method ব্যবহার করে নতুন ডেটা তৈরি

public class RESTPostExample {
    public static void createAccount(String name, String industry) {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint('https://externalapi.com/api/accounts');
        request.setMethod('POST');
        request.setHeader('Content-Type', 'application/json');
        request.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());

        String requestBody = JSON.serialize(new Map<String, Object>{
            'name' => name,
            'industry' => industry
        });

        request.setBody(requestBody);

        HttpResponse response = http.send(request);
        
        if (response.getStatusCode() == 201) {
            System.debug('Account Created: ' + response.getBody());
        } else {
            System.debug('Error: ' + response.getStatusCode() + ' - ' + response.getStatus());
        }
    }
}
  • setMethod('POST'): HTTP POST মেথড নির্ধারণ করা হয়েছে।
  • setBody: JSON ফরম্যাটে Account ডেটা পাঠানো হয়েছে।
  • Content-Type Header: application/json কনটেন্ট টাইপ সেট করা হয়েছে।

HTTP PUT Method: ডেটা আপডেট করা

PUT মেথড ব্যবহার করে বিদ্যমান ডেটা আপডেট করা হয়। এটি সাধারণত JSON ফরম্যাটে ডেটা পাঠায় এবং সার্ভারে ডেটা আপডেট করে।

উদাহরণ: PUT Method ব্যবহার করে ডেটা আপডেট

public class RESTPutExample {
    public static void updateAccount(String accountId, String name, String industry) {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint('https://externalapi.com/api/accounts/' + accountId);
        request.setMethod('PUT');
        request.setHeader('Content-Type', 'application/json');
        request.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());

        String requestBody = JSON.serialize(new Map<String, Object>{
            'name' => name,
            'industry' => industry
        });

        request.setBody(requestBody);

        HttpResponse response = http.send(request);
        
        if (response.getStatusCode() == 200) {
            System.debug('Account Updated: ' + response.getBody());
        } else {
            System.debug('Error: ' + response.getStatusCode() + ' - ' + response.getStatus());
        }
    }
}
  • setMethod('PUT'): HTTP PUT মেথড নির্ধারণ করা হয়েছে।
  • setBody: JSON ফরম্যাটে আপডেট ডেটা পাঠানো হয়েছে।

HTTP DELETE Method: ডেটা মুছে ফেলা

DELETE মেথড ব্যবহার করে নির্দিষ্ট ডেটা রেকর্ড মুছে ফেলা হয়। এটি URL এর মাধ্যমে রেকর্ডের আইডি ব্যবহার করে অপারেশন সম্পন্ন করে।

উদাহরণ: DELETE Method ব্যবহার করে ডেটা মুছে ফেলা

public class RESTDeleteExample {
    public static void deleteAccount(String accountId) {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint('https://externalapi.com/api/accounts/' + accountId);
        request.setMethod('DELETE');
        request.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());

        HttpResponse response = http.send(request);
        
        if (response.getStatusCode() == 204) {
            System.debug('Account Deleted');
        } else {
            System.debug('Error: ' + response.getStatusCode() + ' - ' + response.getStatus());
        }
    }
}
  • setMethod('DELETE'): HTTP DELETE মেথড নির্ধারণ করা হয়েছে।
  • HTTP Status Code 204: সফল হলে স্ট্যাটাস কোড 204 রিটার্ন হয়, যা নির্দেশ করে রিসোর্স সফলভাবে মুছে ফেলা হয়েছে।

REST API Integration এর ভালো অনুশীলন

Exception Handling: REST API কলের সময় Exception Handling নিশ্চিত করতে try-catch ব্লক ব্যবহার করুন।

try {
    // HTTP request and response
} catch (Exception e) {
    System.debug('Error occurred: ' + e.getMessage());
}

Proper Authentication: API কলের জন্য উপযুক্ত Authentication (যেমন OAuth 2.0 বা Bearer Token) নিশ্চিত করুন।

Limit API Calls: API কলের সংখ্যা সীমিত করুন এবং খুব প্রয়োজনীয় হলে ব্যবহার করুন, যাতে গভর্নর লিমিট অতিক্রম না করে।

Use Caching (If Possible): ডেটা ফ্রিকোয়েন্টলি পরিবর্তন না হলে ক্যাশিং ব্যবহার করুন, যা সার্ভারের লোড কমায়।

Test Coverage নিশ্চিত করুন: প্রতিটি REST API মেথডের জন্য টেস্ট ক্লাস লিখে ৭৫% কোড কাভারেজ নিশ্চিত করুন।


REST API Integration এর উদাহরণ: টেস্ট ক্লাস সহ

Apex Class with REST API Methods

public class AccountAPIService {
    public static String createAccount(String name, String industry) {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint('https://externalapi.com/api/accounts');
        request.setMethod('POST');
        request.setHeader('Content-Type', 'application/json');
        request.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());

        String requestBody = JSON.serialize(new Map<String, Object>{
            'name' => name,
            'industry' => industry
        });
        
        request.setBody(requestBody);
        
        HttpResponse response = http.send(request);
        
        if (response.getStatusCode() == 201) {
            return response.getBody();
        } else {
            throw new CalloutException('Failed to create account. Status: ' + response.getStatusCode());
        }
    }
}

Test Class

@isTest
public class AccountAPIServiceTest {
    @isTest
    static void testCreateAccount() {
        Test.startTest();
        
        HttpResponse mockResponse = new HttpResponse();
        mockResponse.setStatusCode(201);
        mockResponse.setBody('{"id":"0011j00000XXXXXXX"}');
        
        Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator(mockResponse));
        
        String result = AccountAPIService.createAccount('Test Account', 'Technology');
        System.assertNotEquals(null, result, 'Account ID should not be null');
        
        Test.stopTest();
    }
    
    // Mock Class for HTTP Callout
    public class MockHttpResponseGenerator implements HttpCalloutMock {
        private HttpResponse response;
        
        public MockHttpResponseGenerator(HttpResponse response) {
            this.response = response;
        }
        
        public HttpResponse respond(HttpRequest req) {
            return response;
        }
    }
}
  • Mock Class: MockHttpResponseGenerator ব্যবহার করে টেস্ট মেথডে HTTP Callout মক করা হয়েছে।
  • System.assertNotEquals: রেসপন্সে প্রাপ্ত Account ID যাচাই করা হয়েছে।

সারসংক্ষেপ

REST API Integration Salesforce-এ HTTP Methods ব্যবহার করে ডেটা প্রক্রিয়াকরণের একটি কার্যকর পদ্ধতি। Apex-এর মাধ্যমে GET, POST, PUT, এবং DELETE মেথড ব্যবহার করে API কল করে ডেটা এক্সচেঞ্জ করা যায়। Exception Handling, Proper Authentication, এবং Test Coverage নিশ্চিত করার মাধ্যমে একটি নিরাপদ এবং নির্ভরযোগ্য API Integration নিশ্চিত করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion